/**
 * 
 */
package br.com.dp.dto.excecao;

import lombok.Getter;
import lombok.Setter;

/**
 * @author emmanuel
 * Classe responsável por exceptions do sistema.
 */
public class BusinessException extends Exception {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8418232396173867326L;

	/**
	 * Código de erro.
	 */
	@Getter
	@Setter
	private Long codigo;

	/**
	 * Mensagem de erro.
	 */
	@Getter
	@Setter
	private String mensagem;
	
	/**
	 * Construtor responsável por instanciar {@link BusinessException}.
	 * @param codigo Código de erro.
	 * @param mensagem Mensagem de erro.
	 */
	public BusinessException(Long codigo, String mensagem) {
		this.codigo = codigo;
		this.mensagem = mensagem;
	}
	
	/**
	 * Construtor responsável por instanciar {@link BusinessException} atravér de um {@link ErrorCode}.
	 * @param errorCode {@link ErrorCode} específico.
	 */
	public BusinessException(ErrorCode errorCode) {
		this.codigo = errorCode.getChave();
		this.mensagem = errorCode.getMensagem();
	}
}
